﻿using SoundEngine3.DspPlugins.Meta;
using ZquenceStudio3Host.DspHost;
using ZquenceStudio3Host.DspPlugins.Synthesizers.Nodesizer.Engine;
using ZquenceStudio3Host.Graphics.Components.Interfaces;

namespace DefaultDspPlugins.UI.Common.Modulizer.Engine.GUIv2.Controls
{
    /// <summary>
    /// Ises for control and map the dsp parameter with a UI control.
    /// </summary>
    public interface IDspControl : IMinMaxValueControl
    {
        /// <summary>
        /// Set the parameter to this UI control.
        /// </summary>
        /// <param name="parameter">Audio parameter.</param>
        /// <param name="controlledBy">Controlled by the DSP.</param>
        /// <param name="customModule">Remap the parameter with another BaseModule (Uses when parameter included in a GroupModule, when use the GroupModulea as custom).</param>
        void SetParameter(ParameterProperties parameter, UndoRedoDspPluginInstance controlledBy, BaseModule customModule);
    }
}
